Column1

Detecciones con cámara trampa y avístamientos incidentales

Esfuerzo de muestreo

Kavanayen Warapata
Nr. bloques 4 6
Nr. celdas con cámaras 14 57
Días*cámara 703 4548
Nr. celdas visitadas 39 59
Distancia recorrida (km) 119.49 [km] 218.14 [km]

Observaciones por especie

Column2

Mapa

Caminata

Rastros y otros avistamientos

Esfuerzo de muestreo (expandido)

Información sobre la sesión de R

R version 4.3.0 (2023-04-21)
Platform: aarch64-apple-darwin20 (64-bit)
Running under: macOS Ventura 13.5.1

Matrix products: default
BLAS:   /Library/Frameworks/R.framework/Versions/4.3-arm64/Resources/lib/libRblas.0.dylib 
LAPACK: /Library/Frameworks/R.framework/Versions/4.3-arm64/Resources/lib/libRlapack.dylib;  LAPACK version 3.11.0

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

time zone: Australia/Sydney
tzcode source: internal

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
 [1] RColorBrewer_1.1-3  tmap_3.3-3          chron_2.3-61       
 [4] raster_3.6-20       tidyr_1.3.0         units_0.8-2        
 [7] htmltools_0.5.5     DT_0.28             ggplot2_3.4.2      
[10] sp_1.6-0            leaflet_2.1.2       dplyr_1.1.2        
[13] flexdashboard_0.6.2

loaded via a namespace (and not attached):
 [1] tidyselect_1.2.0        viridisLite_0.4.2       farver_2.1.1           
 [4] fastmap_1.1.1           XML_3.99-0.14           digest_0.6.31          
 [7] lifecycle_1.0.3         sf_1.0-12               ellipsis_0.3.2         
[10] terra_1.7-29            magrittr_2.0.3          compiler_4.3.0         
[13] rlang_1.1.1             sass_0.4.6              tools_4.3.0            
[16] utf8_1.2.3              yaml_2.3.7              knitr_1.42             
[19] labeling_0.4.2          htmlwidgets_1.6.2       classInt_0.4-9         
[22] here_1.0.1              showtextdb_3.0          abind_1.4-5            
[25] KernSmooth_2.23-20      withr_2.5.0             purrr_1.0.1            
[28] leafsync_0.1.0          grid_4.3.0              fansi_1.0.4            
[31] sysfonts_0.8.8          e1071_1.7-13            leafem_0.2.0           
[34] colorspace_2.1-0        scales_1.2.1            dichromat_2.0-0.1      
[37] cli_3.6.1               rmarkdown_2.21          ragg_1.2.5             
[40] generics_0.1.3          rstudioapi_0.14         tmaptools_3.1-1        
[43] DBI_1.1.3               cachem_1.0.8            proxy_0.4-27           
[46] stars_0.6-1             parallel_4.3.0          s2_1.1.4               
[49] base64enc_0.1-3         vctrs_0.6.2             jsonlite_1.8.5         
[52] systemfonts_1.0.4       crosstalk_1.2.0         fontawesome_0.5.1      
[55] jquerylib_0.1.4         thematic_0.1.3          rgdal_1.6-6            
[58] glue_1.6.2              lwgeom_0.2-11           codetools_0.2-19       
[61] leaflet.providers_1.9.0 gtable_0.3.3            munsell_0.5.0          
[64] tibble_3.2.1            pillar_1.9.0            rappdirs_0.3.3         
[67] showtext_0.9-6          R6_2.5.1                wk_0.7.3               
[70] textshaping_0.3.6       rprojroot_2.0.3         evaluate_0.21          
[73] lattice_0.21-8          highr_0.10              png_0.1-8              
[76] memoise_2.0.1           bslib_0.4.2             class_7.3-21           
[79] Rcpp_1.0.10             xfun_0.39               fs_1.6.2               
[82] pkgconfig_2.0.3        

Column3

Warapata

Eventos fotográficos

887

Otros avistamientos

151

Especies

30

Kavanayen

Eventos fotográficos

175

Otros avistamientos

14

Especies

17
---
title: "Monitoreo de Mamíferos y otros vertebrados en la Gran Sabana"
output: 
  flexdashboard::flex_dashboard:
    theme:
      version: 4
      bg: "#F1FBFB"
      fg: "#5B1A18"
      primary: "#D67236"
      navbar-bg: "#FD6467" 
      base_font: 
        google: Prompt
      heading_font:
        google: Sen
      code_font:
        google: 
          # arguments to sass::font_google() 
          family: JetBrains Mono
          local: false
    social: menu
    source: embed
    navbar:
      - { title: "Proyecto en OSF", href: "https://osf.io/6qtep/", align: left }
      - { title: "Repositorio GitHub", href: "https://github.com/jrfep/GS-svocc", align: left }
editor_options: 
  chunk_output_type: console
---

```{r setup, include=FALSE}
library(flexdashboard)
library(dplyr)
library(leaflet)
library(sp)
library(ggplot2)
library(DT)
library(htmltools)
library(units)
#library(plotly)
#library(spocc)
#library(rinat)
#library(mapr)
require(tidyr)
require(raster)
require(chron)
#library(sf)
library(tmap)
#library(lubridate)
#library(calendR)

library(RColorBrewer)
palette(brewer.pal(8, "Set2"))

```

```{r thematic, include = FALSE}
thematic::thematic_rmd(font = "auto")
```

```{r dataread, message=FALSE, warning=FALSE, include=FALSE}

here::i_am("doc/dashboard.Rmd")
GIS.data <- here::here("Rdata","GIS.rda")
if (!file.exists(GIS.data))
  download.file(url="https://figshare.com/ndownloader/files/37547995",destfile=GIS.data)
load(GIS.data)

event.data <- here::here("Rdata","all-events.csv")
if (!file.exists(event.data))
  download.file(url="https://figshare.com/ndownloader/files/42055824",destfile=event.data)
eventos_actualizados <- read.csv2(event.data)
coordinates(eventos_actualizados) <- c("long","lat")
crs(eventos_actualizados) <- grd@proj4string
qry <- over(eventos_actualizados,grd)
eventos_actualizados$grid <- qry$OID_

## differences between both event data frames:
eventos_adicionales <- eventos %>% filter(!species %in% eventos_actualizados$species) %>%
  mutate(fotos=as.character(fotos))


eventos <- eventos_actualizados@data %>% 
  bind_rows(eventos_adicionales)

cam <- camaras %>% 
  group_by(grid) %>% 
  summarise(cam = sum(dias.de.trabajo),
            caz = max(caza.celda)) %>% 
  transmute(grid, caz, cam)

tps_xy <- spTransform(tps, CRS("+proj=utm +zone=19 +datum=WGS84 +units=m +no_defs +type=crs"))
xys <- coordinates(tps_xy)


walk <- tps@data %>% 
  group_by(grid) %>% 
  summarise(walk = n(),
            dates = n_distinct(time))

walk_ms <- data.frame()
for (k in unique(tps_xy@data$grid)) {
  ss <- tps_xy@data$grid == k
  mtz <- as.matrix(dist(xys[ss,]))
  mtz[upper.tri(mtz,diag = TRUE)] <- NA
  walk_ms <- rbind(walk_ms, data.frame(grid=k, dist_walk=sum(apply(mtz[-1,],1, min, na.rm=TRUE))))
}

walk <- walk %>% left_join(walk_ms, by = "grid") %>%
  mutate(region = if_else(grid <151, "Warapata", "Kavanayen"))

gpslog <- spLines(subset(tps,tps@data$track_fid ==0),
        subset(tps,tps@data$track_fid ==1), 
        subset(tps,tps@data$track_fid ==2),
        subset(tps,tps@data$track_fid ==3),
        subset(tps,tps@data$track_fid ==5),
        subset(tps,tps@data$track_fid ==6),
        subset(tps,tps@data$track_fid ==7),
        subset(tps,tps@data$track_fid ==10),
        subset(tps,tps@data$track_fid ==11),
        subset(tps,tps@data$track_fid ==12),
        subset(tps,tps@data$track_fid ==13),
        subset(tps,tps@data$track_fid ==14),
        subset(tps,tps@data$track_fid ==15),
        subset(tps,tps@data$track_fid ==16),
        subset(tps,tps@data$track_fid ==17),
        attr=data.frame(fid=0:14))

event_summary <- eventos %>%
  group_by(grid) %>%
  summarise(
    total_spp=n_distinct(species))

on_camera_event_summary <- eventos %>%
  filter(!camara %in% "RAS") %>% 
  group_by(grid) %>%
  summarise(
    on_camera_spp=n_distinct(species),
    on_camera_events=n())

off_camera_event_summary <- eventos %>%
  filter(camara %in% "RAS") %>% 
  group_by(grid) %>%
  summarise(
    off_camera_spp=n_distinct(species),
    off_camera_events=n())


event_summary <- event_summary %>% 
  left_join(on_camera_event_summary, by = "grid") %>% 
  left_join(off_camera_event_summary, by = "grid")

effort_data <- walk %>%
  full_join(cam, by = "grid") %>%
  full_join(event_summary, by = "grid") %>%
  filter(!is.na(grid) ) %>%
  transmute(grid, 
            walk=coalesce(walk,0L),
            dist_walk=coalesce(dist_walk,0L),
            cam=coalesce(cam,0L),
            total_spp=coalesce(total_spp,0L),
            on_camera_spp=coalesce(on_camera_spp,0L),
            off_camera_spp=coalesce(off_camera_spp,0L),
            on_camera_events=coalesce(on_camera_events,0L),
            off_camera_events=coalesce(off_camera_events,0L)) 


effort_data$bloque <- factor(grd@data$cuadrado[match(effort_data$grid,grd@data$OID_)])

grd@data <- grd@data %>% 
  left_join(event_summary, by=c("OID_"="grid")) %>% 
  transmute(Celda=OID_,
            Bloque=cuadrado,
            #`Distancia recorrida` = dist_walk,
            #`Dias*cámara` = cam,
            `Eventos fotográficos` = coalesce(on_camera_events,0L),
            `Otros avistamientos` = coalesce(off_camera_events,0L),
            `Especies fotografiadas` = coalesce(on_camera_spp,0L),
            `Especies avistadas` = coalesce(off_camera_spp,0L),
            `Total spp. detectadas` = coalesce(total_spp,0L), 
            )

```


Column1{.tabset .tabset-fade data-width=250}
-------
Detecciones con cámara trampa y avístamientos incidentales

### Esfuerzo de muestreo {data-width=245}

```{r esfuerzo}

cuadro_2 <- effort_data %>% 
  mutate(Region = if_else(bloque %in% 1:6,"Warapata","Kavanayen")) %>%
  group_by(Region) %>% 
  summarise(
    `Nr. bloques` = n_distinct(bloque),
    `Nr. celdas con cámaras` = sum(if_else(cam>0,1,0)),
    `Días*cámara`=sum(cam),
    `Nr. celdas visitadas` = sum(if_else(dist_walk>0,1,0)),
    `Distancia recorrida (km)` = sum(set_units(dist_walk,'m')) %>% set_units('km') %>% round(2),
   .groups = "keep") %>% t()

colnames(cuadro_2) <- cuadro_2[1,]

cuadro_2[-1,] %>% knitr::kable()

```

### Observaciones por especie {data-width=245}
```{r taxalist}

###Create HTML formatting code for header and overall table HTML container
#create header style HTML code
# use colors from the flatly theme?
header.style <- "th { font-family: 'Arial'; font-weight: bold; color: white; background-color: #18bc9c;}"
cell.style <- "text-align: center; border-right-width: 1px; border-right-style: solid; border-right-color: white; 
border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: white"
hcell.style <- "text-align: center; border-width: 1px; border-style: solid; border-color: white; font-size:8px; ba
ckground-color: #18bc9c;"

#pull header names from the table
header.names <- c("Assessment Unit", "Period", "min(RS[i])", "mean RS", "max(RS[i])", "mean RS")
# The container parameter allows us to design the header of the table using CSS
my.container <- withTags(table(
  style(type = "text/css", header.style),
    thead(
      tr(th("",colspan=2),
        th("Original formula",colspan=3, style = hcell.style),
        th("Conditional formula", style = hcell.style)),
      tr(
      lapply(header.names, th, style = cell.style)
      )
    )
  )
)


cuadro_1 <- eventos %>% group_by(Especie = species) %>% summarise(`Eventos fotográficos` = sum(!camara %in% "RAS"),`Otros avistamientos`=sum(camara %in% "RAS")) 

  DT::datatable(
    cuadro_1,
    #colnames = ,
    #caption = tbl_caption,
    options = list(
      dom = 't', 
      pageLength = -1,
      order = list(list(1, 'desc'),list(2, 'desc'))),
    #container=my.container,
    rownames = FALSE,
    width = '100%', 
    height = '100%') #%>%
#  formatRound(c("min_RS", "mean_RS", "max_RS", "mean_RS_cor"),digits=3)



```



Column2 {.tabset .tabset-fade}
-------


### Mapa
```{r map, eval = TRUE}
tmap_mode("view")
map1 <- 
  tm_shape(gpslog, name = "Recorrido (GPS)") +
  tm_lines(col = "maroon") +
  tm_shape(subset(grd,Bloque %in% 1:6), name = "Warapata: Unidades de muestreo") + 
  tm_polygons( border.col = "#F1BB7B", alpha=.5) +
  tm_shape(subset(grd,Bloque %in% 7:10), name = "Kavanayen: Unidades de muestreo") + 
  tm_polygons( border.col = "#FD6467", alpha=.5) +
  tm_minimap()

tmap_leaflet(map1)

```


### Caminata {data-width=245}

```{r "walking distance", fig.showtext = TRUE}
ggplot(data=walk, aes(x = walk, y = dist_walk, colour = region)) +
  geom_point() +
  scale_colour_manual(values=c("Kavanayen"="#FD6467","Warapata"="#F1BB7B")) +
  labs(x="GPS log points", y = "Distancia (metros)", title = "Distancia recorrida en cada unidad de muestreo (celda)")
```


### Rastros y otros avistamientos {data-width=245}

```{r xtraKavanayen}
filter(eventos,  camara %in% "RAS") %>% 
  transmute(Especie=species, `Tipo de evidencia`=evento, Bloque=bloque, Celda=grid, Año=ano, Mes=mes,Día=dia) %>% 
  DT::datatable(options = list(
      pageLength = 25,
      order = list(list(4, 'asc'),list(5, 'asc'),list(6, 'asc'))),
    rownames = FALSE)
```


### Esfuerzo de muestreo (expandido)
```{r obsbyyear}

effort_data %>% 
  group_by(bloque) %>% 
  summarise(`nr. de celdas`=n_distinct(grid),
            `Puntos del log del GPS` = sum(walk),
            `Distancia recorrida (km)` = sum(set_units(dist_walk,'m')) %>% set_units('km'),
            `Días cámara` = sum(cam),
            `Eventos fotográficos` = sum(on_camera_events),
            `Otros avistamientos` = sum(off_camera_events)) %>% 
  DT::datatable(options = list(
      pageLength = 25),
    rownames = FALSE) %>%
  formatRound(c("Distancia recorrida (km)"),digits=2)

```

### Información sobre la sesión de R
```{r sessionInfo}
sessionInfo()

```
Column3{data-width=150}
-------

### Warapata

### Eventos fotográficos

```{r}
on_camera <- effort_data %>% filter(bloque %in% 1:6) %>% summarise(sum(on_camera_events)) %>% pull
off_camera <- effort_data %>% filter(bloque %in% 1:6) %>% summarise(sum(off_camera_events)) %>% pull
n_especies <- eventos %>% filter(bloque %in% sprintf("B%02d",1:6)) %>% summarise(n_distinct(species)) %>% pull
valueBox(on_camera, icon = "fa-camera", color = "#F1BB7B")
```

### Otros avistamientos

```{r}
valueBox(off_camera, icon = "fa-binoculars", color = "#F1BB7B")
```
### Especies

```{r}
valueBox(n_especies, icon = "fa-paw", color = "#F1BB7B")
```

### Kavanayen

### Eventos fotográficos

```{r}
on_camera <- effort_data %>% filter(bloque %in% 7:10) %>% summarise(sum(on_camera_events)) %>% pull
off_camera <- effort_data %>% filter(bloque %in% 7:10) %>% summarise(sum(off_camera_events)) %>% pull
n_especies <- eventos %>% filter(bloque %in% sprintf("B%02d",7:10)) %>% summarise(n_distinct(species)) %>% pull
valueBox(on_camera, icon = "fa-camera", color = "#FD6467")
```

### Otros avistamientos

```{r}
valueBox(off_camera, icon = "fa-binoculars", color = "#FD6467")
```

### Especies

```{r}
valueBox(n_especies, icon = "fa-paw", color = "#FD6467")
```